cmake_minimum_required(VERSION 3.10)

project(super_perpetual_calendar)

# 设置C标准
set(CMAKE_C_STANDARD 11)
set(CMAKE_C_STANDARD_REQUIRED ON)

# 添加编译选项
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Werror=implicit-function-declaration")

# 添加头文件目录
include_directories(
    ${CMAKE_SOURCE_DIR}/include
    ${CMAKE_SOURCE_DIR}/src
)

# 收集源文件
file(GLOB_RECURSE SOURCES 
    ${CMAKE_SOURCE_DIR}/src/*.c
)

# 打印收集的源文件（用于调试）
message(STATUS "Sources: ${SOURCES}")

# 添加可执行文件
add_executable(${PROJECT_NAME} ${SOURCES})

# 根据平台链接不同的库
if(WIN32)
    # Windows平台需要链接的库
    target_link_libraries(${PROJECT_NAME} 
        kernel32  # Windows API基础库
        user32    # 用户界面相关函数
    )
elseif(UNIX AND NOT APPLE)
    # Linux平台需要链接的库
    target_link_libraries(${PROJECT_NAME} 
        m         # 数学库（如sqrt）
        pthread   # 线程库（如果使用多线程）
    )
elseif(APPLE)
    # macOS平台需要链接的库
    target_link_libraries(${PROJECT_NAME} 
        m         # 数学库
    )
endif()

cmake_minimum_required(VERSION 3.10)
project(super_perpetual_calendar)

# 设置 C 标准
set(CMAKE_C_STANDARD 11)

# 针对Windows系统设置
if(WIN32)
    # 使用UTF-8编码（源代码和可执行文件）
    if(CMAKE_C_COMPILER_ID STREQUAL "GCC")
        add_compile_options(-finput-charset=UTF-8)
        add_compile_options(-fexec-charset=UTF-8)
    elseif(CMAKE_C_COMPILER_ID STREQUAL "MSVC")
        add_compile_options(/utf-8)
    endif()
    
    # 链接Windows控制台库
    target_link_libraries(${PROJECT_NAME} kernel32)
endif()

# 安装目标（可选）
# install(TARGETS ${PROJECT_NAME} DESTINATION bin)